//
//  NSDate+Extension.swift
//  WeiBo
//
//  Created by qfh on 16/7/16.
//  Copyright © 2016年 qiufuhe. All rights reserved.
//

import Foundation


extension NSDate {

    /**
     根据时间字符串创建时间对象
     
     - parameter crearater: <#crearater description#>
     
     - returns: <#return value description#>
     */
    class func sinaDate(crearater: String) -> NSDate{
        
        
        let dt = NSDateFormatter()
        
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        dt.locale = NSLocale(localeIdentifier: "en_US")
        

        return dt.dateFromString(crearater)!
   }
    
    /**
    *  根据时间对象创建字符串
    */
    
    var sinaDateToString: String {
    
        let dt = NSDateFormatter()
        
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        if isThisYer(self) {
            
            // 创建日历
            let calendar = NSCalendar.currentCalendar()
            
            if calendar.isDateInToday(self) {
            
                let timeinterval = abs(self.timeIntervalSinceNow)
                
                if timeinterval < 60 {
                
                    return "刚刚"
                } else if timeinterval < (60 * 60) {
                
                    return "\(Int(timeinterval / 60))分钟前"
                }else if timeinterval < (60 * 60 * 24) {
                    
                    return "\(Int(timeinterval / 60 / 60))小时前"
                }
            
            
            } else if calendar.isDateInYesterday(self) {
                dt.dateFormat = "昨天 HH:mm"


            }else {
                //  其他
                dt.dateFormat = "MM-dd HH:mm"
                
            }
            
            
        
        
        
        }else {
        
            // 不是今年
            dt.dateFormat = "yyyy-MM-dd HH:mm"
        
        }
        
    
        
        return dt.stringFromDate(self)
    }

    
    private func isThisYer(crearate: NSDate) ->Bool {
    
        let dt = NSDateFormatter()
        
        dt.dateFormat = "yyyy"
        
        dt.locale = NSLocale(localeIdentifier: "en_US")
        
        // 需要判断时间转换为 年
        let createDateYea = dt.stringFromDate(crearate)
        // 当前时间转换为年
        let currentDateYear = dt.stringFromDate(NSDate())
    
    
        return createDateYea == currentDateYear
    }







}



